function foo() {
  var title = 'hhh'
  var title1 = 'aaa'
  function bar() {
    console.log(title)
  }
  return bar
}
// 1.当foo函数执行完毕，作用域本应该被销毁
// 2.bar函数的作用域内使用title，通过父级作用域引用
// 3.foo作用域的title依旧占据内存，因为被引用所以不会被销毁，但是title1变量会被销毁 
// 4.将bar返回给全局的fn变量，依旧被引用不会被销毁
// 5.此时就是内存泄露
var fn = foo()
// 6.将foo的作用域内存回收
fn = null
// 7.将foo变量指向的函数对象回收
foo = null
